home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DDJMAG / DDJ9203.ZIP / OOPASM.ZIP / VIDEO.MAC < prev    next >
Text File  |  1990-12-14  |  5KB  |  200 lines

  1. COMMENT    %
  2. ============================================================================
  3. Sets the video mode.
  4.  
  5. ===========================================================================%
  6. videoMode    MACRO    Mode
  7.     IFDIF    <Mode>,<al>
  8.     mov    al,Mode
  9.     ENDIF
  10.     mov    ah,00h            ;Pass set video mode function code
  11.     int    10h            ;BIOS interrupt
  12.     ENDM
  13.  
  14.  
  15.  
  16. COMMENT    %
  17. ============================================================================
  18. Selects the display page.
  19.  
  20. ===========================================================================%
  21. disPage    MACRO    Page
  22.     IFDIF    <Page>,<al>
  23.     mov    al,Page
  24.     ENDIF
  25.     mov    ah,05h            ;Pass set display page functioin code
  26.     int    10h            ;BIOS interrupt
  27.     ENDM
  28.  
  29.  
  30.  
  31. COMMENT    %
  32. ============================================================================
  33. Sets the display page and video mode.
  34.  
  35. ===========================================================================%
  36. setVideoMode    MACRO    Page,Mode
  37.     disPage        Page
  38.     videoMode    Mode
  39.     ENDM
  40.  
  41.  
  42.  
  43. COMMENT    %
  44. ============================================================================
  45. Determines the current display page and video mode.
  46.  
  47. ===========================================================================%
  48. getVideoMode    MACRO    Page,Mode
  49.     mov    ah,0Fh            ;FUNCTION NUMBER FOR SERVICE
  50.     int    10h            ;BIOS interrupt
  51.     IFDIF    <Page>,<bh>
  52.     mov    Page,bh            ;Display page returned in bh
  53.     ENDIF
  54.     IFDIF    <Mode>,<al>
  55.     mov    Mode,al            ;Video mode returned in al
  56.     ENDIF
  57.     ENDM
  58.  
  59.  
  60.  
  61. COMMENT    %
  62. ============================================================================
  63. Sets the border color.
  64.  
  65. ===========================================================================%
  66. setBorderColor    MACRO    Color
  67.     IFDIF        <bl>,<Color>
  68.     mov        bl,Color
  69.     ENDIF
  70.     mov        cl,4
  71.     shr        bl,cl            ;Screen's background color
  72.     mov        ah,0Bh            ;Function code
  73.     mov        bh,0            ;Want border color changed
  74.     int        10h
  75.     ENDM
  76.  
  77.  
  78.  
  79. COMMENT    %
  80. ============================================================================
  81. Reads character/attribute at current cursor position.
  82.  
  83. ===========================================================================%
  84. readChar    MACRO    Char,Attr,Page
  85.     IFNB    <Page>
  86.     mov    bh,Page            ;Set given display page 
  87.     ELSE
  88.     xor    bh,bh            ;Assume display page 0
  89.     ENDIF
  90.     mov    ah,8            ;READ ATTR FUNCTION
  91.     int    10h            ;BIOS interrupt
  92.     IFDIF    <Attr>,<ah>
  93.     mov    attr,ah            ;Return attrib
  94.     ENDIF
  95.     IFDIF    <Char>,<al>
  96.     mov    char,al            ;Return char
  97.     ENDIF
  98.     ENDM
  99.  
  100.  
  101.  
  102. COMMENT    %
  103. ============================================================================
  104. Returns the given reverse video attribute.
  105.  
  106. ===========================================================================%
  107. reverseVideo    MACRO    Reg
  108.     mov    cl,4            ;Number of bits to rotate
  109.     rol    Reg,cl
  110.     ENDM
  111.  
  112.  
  113.  
  114. COMMENT    %
  115. ============================================================================
  116. Returns the given attribute with intensity bit set.
  117.  
  118. ===========================================================================%
  119. intensityOn    MACRO    attr
  120.     or    attr,00001000b
  121.     ENDM
  122.  
  123.  
  124.  
  125. COMMENT    %
  126. ============================================================================
  127. Returns the given attribute with intensity bit set to zero.
  128.  
  129. ===========================================================================%
  130. intensityOff    MACRO    attr
  131.     and    attr,11110111b
  132.     ENDM
  133.  
  134.  
  135.  
  136. COMMENT    %
  137. ============================================================================
  138. Scrolls a screen area up.
  139.  
  140. ===========================================================================%
  141. scrlUp        MACRO    R1,C1,R2,C2,Color,Lines
  142.     getWinAttrs    R1,C1,R2,C2,Color,Lines
  143.     mov        ah,6        ;Pass scroll-up service number in ah
  144.     int        10h        ;BIOS interrupt
  145.     ENDM
  146.  
  147.  
  148.  
  149. COMMENT    %
  150. ============================================================================
  151. Scrolls a screen area down.
  152.  
  153. ===========================================================================%
  154. scrlDn        MACRO    R1,C1,R2,C2,Color,Lines
  155.     getWinAttrs    R1,C1,R2,C2,Color,Lines
  156.     mov        ah,7        ;Pass scroll-down service number in ah
  157.     int        10h        ;BIOS interrupt
  158.     ENDM
  159.  
  160.  
  161.  
  162. COMMENT    %
  163. ============================================================================
  164. Clears a screen area.
  165.  
  166. ===========================================================================%
  167. clrWin        MACRO    R1,C1,R2,C2,Color
  168.     getWinAttrs    R1,C1,R2,C2,Color,0
  169.     mov        ah,6        ;Pass scroll-up service number in ah
  170.     int        10h        ;BIOS interrupt
  171.     ENDM
  172.  
  173.  
  174.  
  175. COMMENT    %
  176. ============================================================================
  177. Sets registers for window scrolling.
  178.  
  179. ===========================================================================%
  180. getWinAttrs    MACRO    R1,C1,R2,C2,Color,Lines
  181.     IFDIF    <ch>,<R1>
  182.     mov    ch,R1
  183.     ENDIF
  184.     IFDIF    <cl>,<C1>
  185.     mov    cl,C1
  186.     ENDIF
  187.     IFDIF    <dh>,<R2>
  188.     mov    dh,R2
  189.     ENDIF
  190.     IFDIF    <dl>,<C2>
  191.     mov    dl,C2
  192.     ENDIF
  193.     IFDIF    <bh>,<Color>
  194.     mov    bh,Color
  195.     ENDIF
  196.     IFDIF    <al>,<Lines>
  197.     mov    al,Lines
  198.     ENDIF
  199.     ENDM
  200.